package com.mxd.ik.common.enums;


import lombok.AllArgsConstructor;
import lombok.Getter;

/**
 * 响应状态码枚举
 * 为什么用枚举？
 * 1. 类型安全，避免魔法数字
 * 2. 统一管理，便于维护
 * 3. IDE友好，有代码提示
 */
@Getter
@AllArgsConstructor
public enum ResultCode {

    // 成功
    SUCCESS(200, "操作成功"),

    // 客户端错误 4xx
    BAD_REQUEST(400, "请求参数错误"),
    UNAUTHORIZED(401, "未登录或登录已过期"),
    FORBIDDEN(403, "没有权限访问"),
    NOT_FOUND(404, "资源不存在"),

    // 服务端错误 5xx
    INTERNAL_ERROR(500, "服务器内部错误"),
    SERVICE_UNAVAILABLE(503, "服务暂不可用");

    private final Integer code;
    private final String message;
}

